package com.chenyaowei.product.vo;

import com.chenyaowei.marketing.domain.CywSpuDiscount;
import com.chenyaowei.marketing.domain.CywSpuFullReduction;
import com.chenyaowei.product.domain.CywProSkuInfo;
import com.chenyaowei.product.domain.CywProSpuImages;
import com.chenyaowei.product.domain.CywProductAttrValue;

import java.io.Serializable;
import java.util.List;

/**
 * @author 陈耀威
 * @description:
 * @date 2023年12月02日
 * @version: 1.0
 */
public class ProductInfoVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * spu_id
     */
    private Long spuId;

    /**
     * 商品名称
     */
    private String spuName;

    /**
     * 描述信息
     */
    private String spuDescription;

    /**
     * 品牌名称
     */
    private String brandName;

    /**
     * 分类名称
     */
    private String catName;

    private Long catalogId;
    /**
     * 品牌id
     */
    private Long brandId;

    private CywSpuFullReduction spuFullReduction;

    private CywSpuDiscount spuDiscount;

    /**
     * 商品sku 列表
     */
    private List<CywProSkuInfo> skuInfos;

    /**
     * 商品详情图片列表 商品介绍
     */
    private List<CywProSpuImages> spuImageList;

    /** 祖宗分类IDs（含自身）用于商品筛选  */
    private List<Long> originCatIds;

    /** 是否已收藏 */
    private Boolean collected;

    /**
     * 商品sku 销售属性列表
     */
    private List<ProductSaleAttrCondition> saleAttrConditions;

    private List<CywProductAttrValue> baseAttrs;

    private Integer commentCount;

    public static class ProductSaleAttrCondition {

        private Long attrId;

        private String attrName;

        private String attrValues;

        public Long getAttrId() {
            return attrId;
        }

        public void setAttrId(Long attrId) {
            this.attrId = attrId;
        }

        public String getAttrName() {
            return attrName;
        }

        public void setAttrName(String attrName) {
            this.attrName = attrName;
        }

        public String getAttrValues() {
            return attrValues;
        }

        public void setAttrValues(String attrValues) {
            this.attrValues = attrValues;
        }

        @Override
        public String toString() {
            return "ProductSaleAttrCondition{" +
                    "attrId=" + attrId +
                    ", attrName='" + attrName + '\'' +
                    ", attrValues=" + attrValues +
                    '}';
        }
    }

    public Long getSpuId() {
        return spuId;
    }

    public void setSpuId(Long spuId) {
        this.spuId = spuId;
    }

    public String getSpuName() {
        return spuName;
    }

    public void setSpuName(String spuName) {
        this.spuName = spuName;
    }

    public String getSpuDescription() {
        return spuDescription;
    }

    public void setSpuDescription(String spuDescription) {
        this.spuDescription = spuDescription;
    }

    public Long getBrandId() {
        return brandId;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getCatName() {
        return catName;
    }

    public void setCatName(String catName) {
        this.catName = catName;
    }

    public List<CywProSkuInfo> getSkuInfos() {
        return skuInfos;
    }

    public void setSkuInfos(List<CywProSkuInfo> skuInfos) {
        this.skuInfos = skuInfos;
    }

    public List<CywProSpuImages> getSpuImageList() {
        return spuImageList;
    }

    public void setSpuImageList(List<CywProSpuImages> spuImageList) {
        this.spuImageList = spuImageList;
    }

    public List<ProductSaleAttrCondition> getSaleAttrConditions() {
        return saleAttrConditions;
    }

    public void setSaleAttrConditions(List<ProductSaleAttrCondition> saleAttrConditions) {
        this.saleAttrConditions = saleAttrConditions;
    }

    public List<CywProductAttrValue> getBaseAttrs() {
        return baseAttrs;
    }

    public void setBaseAttrs(List<CywProductAttrValue> baseAttrs) {
        this.baseAttrs = baseAttrs;
    }

    public List<Long>getOriginCatIds() {
        return originCatIds;
    }

    public void setOriginCatIds(List<Long> originCatIds) {
        this.originCatIds = originCatIds;
    }

    public CywSpuFullReduction getSpuFullReduction() {
        return spuFullReduction;
    }

    public void setSpuFullReduction(CywSpuFullReduction spuFullReduction) {
        this.spuFullReduction = spuFullReduction;
    }

    public CywSpuDiscount getSpuDiscount() {
        return spuDiscount;
    }

    public void setSpuDiscount(CywSpuDiscount spuDiscount) {
        this.spuDiscount = spuDiscount;
    }

    public Boolean getCollected() {
        return collected;
    }

    public void setCollected(Boolean collected) {
        this.collected = collected;
    }

    public Long getCatalogId() {
        return catalogId;
    }

    public void setCatalogId(Long catalogId) {
        this.catalogId = catalogId;
    }

    public Integer getCommentCount() {
        return commentCount;
    }

    public void setCommentCount(Integer commentCount) {
        this.commentCount = commentCount;
    }


    @Override
    public String toString() {
        return "ProductInfoVO{" +
                "spuId=" + spuId +
                ", spuName='" + spuName + '\'' +
                ", spuDescription='" + spuDescription + '\'' +
                ", brandName='" + brandName + '\'' +
                ", catName='" + catName + '\'' +
                ", brandId=" + brandId +
                ", spuFullReduction=" + spuFullReduction +
                ", spuDiscount=" + spuDiscount +
                ", skuInfos=" + skuInfos +
                ", spuImageList=" + spuImageList +
                ", originCatIds=" + originCatIds +
                ", saleAttrConditions=" + saleAttrConditions +
                ", baseAttrs=" + baseAttrs +
                '}';
    }

}
